﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

// 注意1：函数的默认参数必须写在最后，默认参数后面必须都是默认参数 
int myFunc(int a, int b = 1) { // int b = 1 就是参数b的默认值 
	return a + b;
}
// 注意2：函数声明和函数定义不能同时都写默认参数，只能取一 
int myFunc2(int a, int b = 2);
int myFunc2(int a, int b) {
	return a + b;
}

// 函数占位参数，占位参数在后面运算符重载时区分前加加和后加加 
void func(int a, int = 10) { // 占位参数也可以有默认值 
	cout << "func " << a << endl; 
}
void func1(int = 10, int a = 20) { // 有默认值的参数后面的参数必须都有默认值 
	cout << "func1 " << a << endl;
}
void test02() {
	func(20);
	func1(30);
}

int main()
{
	int c = myFunc(1, 2); 
	int d = myFunc(5); // 默认参数可以不写，则取默认值，

	int e = myFunc2(3, 4);

	system("pause");
	return EXIT_SUCCESS;
}